package org.hxyjs.service.impl;


import org.hxyjs.dao.ClazzDao;
import org.hxyjs.dto.DTO;
import org.hxyjs.dto.MessageEnum;
import org.hxyjs.entity.Clazz;
import org.hxyjs.entity.Clazz;
import org.hxyjs.page.PageInfo;
import org.hxyjs.service.ClazzService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

@Service("ClazzService")
public class ClazzServiceImpl implements ClazzService {
    @Resource
    ClazzDao clazzDao;
    @Override
    public DTO<Clazz> getAllClazzs()  throws Exception{
        List<Clazz> clazzs = clazzDao.getAllClazzs();
        MessageEnum messageEnum  = Optional.ofNullable(clazzs).isPresent()?MessageEnum.GETCLAZZSUCCESS: MessageEnum.GETCLAZZFAIL;
        return new DTO<Clazz>(messageEnum.getCode(),messageEnum.getMessage(),clazzs);
    }

    @Override
    public DTO<Clazz> deleteClazzByClno(String clno)  throws Exception{
        Integer result = clazzDao.deleteClazzByClno(clno);
        MessageEnum messageEnum  =result> 0?MessageEnum.DELETECLAZZSUCCESS:MessageEnum.DELETECLAZZFAIL;
        return new DTO<Clazz>(messageEnum.getCode(),messageEnum.getMessage());
    }

    @Override
    public DTO<Clazz> updateClazzByClno(Clazz clazz)  throws Exception{
        Integer result = clazzDao.updateClazzByClno(clazz);
        MessageEnum messageEnum  =result> 0?MessageEnum.UPDATECLAZZSUCCESS:MessageEnum.UPDATECLAZZFAIL;
        return new DTO<Clazz>(messageEnum.getCode(),messageEnum.getMessage());
    }

    @Override
    public DTO<Clazz> addClazz(Clazz clazz) throws Exception {
        Integer result = clazzDao.addClazz(clazz);
        MessageEnum messageEnum  = result> 0?MessageEnum.ADDCLAZZSUCCESS:MessageEnum.ADDCLAZZFAIL;
        return new DTO<Clazz>(messageEnum.getCode(),messageEnum.getMessage());
    }
    @Override
    public DTO<Clazz> getClazzByPage(PageInfo pageInfo ) throws Exception {
        List<Clazz> clazzs = clazzDao.getClazzByPage(pageInfo);
        MessageEnum messageEnum  = Optional.ofNullable(clazzs).isPresent()?MessageEnum.GETCLAZZSUCCESS: MessageEnum.GETCLAZZFAIL;
        return new DTO<Clazz>(messageEnum.getCode(),messageEnum.getMessage(),clazzs,pageInfo);
    }
}
